﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sociedad.DAL;
using Sociedad.BL;

public partial class SOA_DesignacionSOA_SolicitudDesignacion_Listado : System.Web.UI.Page
{
    SolicitudDesignacionBL blSol = new SolicitudDesignacionBL();
    Wfs_SeguimientoDocumento beDocWF = new Wfs_SeguimientoDocumento();
    WfDocumentoBL blDocWF = new WfDocumentoBL();

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (!Page.IsPostBack)
            {
                Inicializar();
            }
            else
            {
                lblMsj.Visible = false;
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error al intentar cargar los datos, volver a intentar.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;  
        }
    }

    private void Inicializar()
    {
        CargarGrilla();
    }

    private void CargarGrilla()
    {
        grvListaSolicitud.DataSource = blSol.Listar_SolicitudDesignacion_Vista(Session[Constantes.session_CodUniOrg].ToString());
        grvListaSolicitud.DataBind();
    }

    protected void imbNuevo_Click(object sender, ImageClickEventArgs e)
    {
        Session[Constantes.session_Codigo_SolicitudDesignacion] = "";
        Response.Redirect("SolicitudDesignacion_Manten.aspx");
    }

    protected void imbModificar_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            GridViewRow grvSel = grvListaSolicitud.SelectedRow;
            if (grvSel == null)
            {
                lblMsjConfirm8.Text = "Debe de seleccionar el documento a modificar.";
                UpdatePanel8.Update();
                modalPopupSelect.Show();
            }
            else
            {
                if (grvSel.Cells[6].Text == Constantes.Estado_SolcitudDesignacion_Emitido || grvSel.Cells[6].Text == Constantes.Estado_SolcitudDesignacion_PorSubsanar)
                {
                    Session[Constantes.session_Codigo_SolicitudDesignacion] = grvSel.Cells[0].Text;
                    Response.Redirect("SolicitudDesignacion_Manten.aspx");
                }
                else
                {
                    if (grvSel.Cells[6].Text == Constantes.Estado_SolcitudInscripcion_Aceptado)
                    {
                        lblMsjConfirm8.Text = "La solicitud ha sido aceptado, no puede ser modificado.";
                        UpdatePanel8.Update();
                        modalPopupSelect.Show();
                    }
                    else
                    {
                        lblMsjConfirm8.Text = "La solicitud se encuentra en proceso de evaluación, no puede ser modificado.";
                        UpdatePanel8.Update();
                        modalPopupSelect.Show();
                    }
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    protected void imbEliminar_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            GridViewRow grvSel = grvListaSolicitud.SelectedRow;
            if (grvSel == null)
            {
                lblMsjConfirm8.Text = "Debe de seleccionar el documento a eliminar.";
                UpdatePanel8.Update();
                modalPopupSelect.Show();
            }
            else
            {
                if (grvSel.Cells[6].Text == Constantes.Estado_SolcitudDesignacion_Emitido)
                {
                    String[] cRpta = blSol.Eliminar_SolicitudDesignacion(grvSel.Cells[0].Text).Split('@');
                    if (cRpta[0] == "1")
                    {

                        CargarGrilla();

                        lblMsj.Text = "Se eliminó correctamente la solicitud.";
                        lblMsj.ForeColor = System.Drawing.Color.Blue;
                        lblMsj.Visible = true;
                    }
                    else
                    {
                        lblMsj.Text = "Se produjo un error al intentar eliminar la solicitud, volver a intentar.";
                        lblMsj.ForeColor = System.Drawing.Color.Red;
                        lblMsj.Visible = true;
                    }
                }
                else
                {
                    lblMsjConfirm8.Text = "La solicitud se encuentra en proceso de evaluación, solo puede eliminar si el estado es Emitido.";
                    UpdatePanel8.Update();
                    modalPopupSelect.Show();
                }
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error inesperado al intentar eliminar, cierre y vuelva a intentarlo.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }

    protected void imbEnviarDoc_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            GridViewRow grvSel = grvListaSolicitud.SelectedRow;
            if (grvSel == null)
            {
                lblMsjConfirm8.Text = "Debe de seleccionar un documento a enviar para su evaluación.";
                UpdatePanel8.Update();
                modalPopupSelect.Show();
            }
            else
            {
                modalPopupEnviar.Show();
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error inesperado al intentar iniciar el proceso de envío, cierre y vuelva a intentarlo.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }

    protected void imb_Cerrar_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect("~/Principal.aspx");
    }

    // Enviar
    protected void imbOK5_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            GridViewRow rowSel = grvListaSolicitud.SelectedRow;
            beDocWF.ctdo_Codigo = Constantes.wfTipDoc_SolicitudDesignacion;
            beDocWF.cedo_CodDoc = rowSel.Cells[0].Text;
            beDocWF.cprm_EnviaTipUO = Session[Constantes.session_CodTipUO].ToString();
            beDocWF.cent_EnviaUO = Session[Constantes.session_CodUniOrg].ToString();
            beDocWF.usr_EnviaUser = Session[Constantes.session_CodUsuario].ToString();
            beDocWF.csdo_Comentario = "Inicio Flujo de Documento";
            beDocWF.cprm_Estado = "2302";

            String[] cRpta = blDocWF.Registrar_DocumentoWF(beDocWF, 'I').Split('@');
            if (cRpta[0] == "1")
            {
                CargarGrilla();
                lblMsj.Text = "La Solicitud [" + beDocWF.cedo_CodDoc + "] ha sido derivado con éxito.";
                lblMsj.ForeColor = System.Drawing.Color.Green;
                lblMsj.Visible = true;
            }
            else
            {
                if (String.IsNullOrEmpty(cRpta[1]))
                {
                    lblMsj.Text = "Se produjo un error inesperado, cierre la ventana y vuelva a intentar enviar.";
                    lblMsj.ForeColor = System.Drawing.Color.Blue;
                    lblMsj.Visible = true;
                }
                else
                {
                    lblMsj.Text = cRpta[1];
                    lblMsj.ForeColor = System.Drawing.Color.Blue;
                    lblMsj.Visible = true;
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}